package com.kevin.Code.OfferReviewVersion2;

import java.util.PriorityQueue;

/**
 * @author Vinlee Xiao
 * @Classname KthLargestElementInaStream
 * @Description Leetcode 703. 数据流中的第 K 大元素 同剑指OfferII 59
 * @Date 2022/2/7 21:19
 * @Version 1.0
 */
public class KthLargest {
    PriorityQueue<Integer> priorityQueue;
    int k;

    /**
     * @param k
     * @param nums
     */
    public KthLargest(int k, int[] nums) {
        this.k = k;
        this.priorityQueue = new PriorityQueue<>();
        for (int num : nums) {
            priorityQueue.add(num);
        }
    }

    /**
     * @param val
     * @return
     */
    public int add(int val) {

        priorityQueue.add(val);
        //当大于k时直接跳出
        while (priorityQueue.size() > k) {
            priorityQueue.poll();
        }
        return priorityQueue.peek();
    }

}
